// 导入pinia中的defineStore函数
import { defineStore } from 'pinia'

// 定义一个名为admin的store
const useAdmin=defineStore('admin',()=>{
    // 定义一个默认的admin对象
    const defaultAdmin = {
		username: '',
		avatar: ''
	}

    // 使用reactive将admin对象转换为响应式对象
    const admin = reactive(Object.assign({}, defaultAdmin))

    // 定义一个更新admin的方法，接收一个options参数，将options中的属性赋值给admin对象
    const updateAdmin = options => {
		Object.assign(admin, options)
		return admin
	}

    // 定义一个移除admin的方法，将admin对象重置为默认值
    const removeAdmin = () => {
		Object.assign(admin, defaultAdmin)
		return admin
	}

    // 返回admin对象和更新、移除admin的方法
    return {
        admin,
        updateAdmin,
        removeAdmin
    }
}, {
    // 设置持久化存储，启用持久化存储，存储的key为admin，存储方式为localStorage
    persist: {
        enabled: true,
        key: 'admin',
        storage: localStorage
    }
})
// 导出useAdmin
export default useAdmin